# WhatIsDeprecated
Screenshot recognition, information extraction to find obsolete artifacts.

Проверка скриншотов на наличие дат.

Скрипт **ScrTimeCheck.py** находит и выводит на экран все найденные даты ранее указанной при запуске. 
Также все изображения, содержащие "некорректные" даты, копируются в подкаталог с именем вида "found_before\_{год}\_{месяц}\_{день}" в каталоге с материалами сканирования.
Даты распознаются со всех скриншотов \(и других изображений\), которые содержатся в обрабатываемом файле формата docx. Поддерживаются простые маски файлов \("*"\), поэтому множественная обработка файлов тоже возможна.

Для работы скрипту необходим установленный в системе пакет Tesseract-OCR (согласно его инструкции по установке, правильной установкой считается такая, когда вызов утилиты tesseract возможен **без указания полного пути** к ней).

## Зависимости

Для работы скрипту необходим установленный в системе интерпретатор Python версии 3.8 или выше.

### Tesseract:
**Windows:**  https://github.com/UB-Mannheim/tesseract/wiki

В ходе инсталляции нужно выбрать языки, для которых будут установлены тренировочные данные (как минимум - Russian, Englis):
![image](https://user-images.githubusercontent.com/10373862/154070332-4a324de9-3144-420e-af3f-2a9a98f2a9a2.png)

Рекомендуется также устанавливать Tesseract в варианте "Для всех пользователей". 
В этом случае скрипт сам позаботится о том, чтобы указать правильный путь к исполняемому файлу:

```
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
```

**Linux:** 

`sudo apt install tesseract-ocr tesseract-ocr-rus -y`

На Astra Linux Orel (2.12.43) для корректной работы утилиты pip для установки Python-модулей необходимо установить curl, а затем pip3:

`sudo apt install curl`

`curl -sS https://bootstrap.pypa.io/pip/3.5/get-pip.py | sudo python3`

`ln /usr/local/bin/pip3 /usr/bin/pip3`


## Установка 

0. Установить git.

1. Установить Python 3 версии >= 3.8.

2. Установить Tesseract-OCR.

3. Клонировать этот репозиторий.

4. Установить пакеты из requirements.txt:

`python -m pip install -r ./requirements.txt --no-cache-dir`

или на Windows

`py -3 -m pip install -r requirements.txt --no-cache-dir`


## Использование

Для выполнения скрипта  нужно запустить его с необходимыми параметрами с помощью интерпретатора **python3** (если он единственный в системе - может называться просто `python`). 

Чтобы не получать ошибок об отсутствующем файле `python` или `python3` и не указывать полный путь к интерпретатору Python, убедитесь, что путь к нему указан в системной переменной PATH.

    `python3 ./ScrTimeCheck.py -c ./report.docx  "2021-01-10"`
    `python3 ./ScrTimeCheck.py -c topdir/**/*.doc*  "2021-01-10"`

Под Windows используйте команду `py -3`:

    `py -3 ./ScrTimeCheck.py -c ./report.docx  "2021-01-10"`
    `py -3 ./ScrTimeCheck.py -c topdir/**/*.doc*  "2021-01-10"`




По результатам работы в текущем каталоге будет создан каталог (каталог**и**, если обрабатываемых файлов несколько) с именем обрабатываемого файла и указанной даты (например `report.docx_2021-01-10`).

Если каталог с таким именем уже существует, будет создан новый каталог с таким же именем, но к которому будет добавлен суффикс типа "(1)", "(2)" и т.д. Это может быть полезно, если в разных обрабатываемых подкаталогах обнаружатся одноимённые файлы.

Скрипт в ходе работы выводит на экран: 

- имена обрабатываемых файлов docx;

- имя каталога с изображениями с "неправильными" датами;

- количество найденных в docx-файлах изображений;

- прогресс-бары для длительных операций;

- найденные "неправильные" даты и названия файлов, их содержащих. 

  

![image](https://user-images.githubusercontent.com/10373862/155700346-902aa74a-a46a-4117-9cfb-2fb417b879d7.png)



Пожелания по доработке скрипта или по дополнительной функциональности можно присылать по адресу industrialSAST@ya.ru или r.yudichev@fobos-nt.ru.
